package com.yupi.yurpc.model;

import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @program: yu-rpc
 * @description: Java Lotus
 * @author: spring
 * @create: 2024-10-23
 * RPC 请求，产生了相关的请求的参数
 */
/*
请求类 RpcRequest 的作用是封装调用所需的信息，
比如服务名称、方法名称、调用参数的类型列表、参数列表。这些都是 Java 反射机制所需的参数。
 */
//此处引入了lombok的注解
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RpcRequest implements Serializable {

    /**
     * 服务名称
     */
    private String serviceName;

    /**
     * 方法名称
     */
    private String methodName;

    /**
     * 参数类型列表
     */
    private Class<?>[] parameterTypes;

    /**
     * 参数列表
     */
    private Object[] args;

}
